package top.tangyh.lamp.care.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import top.tangyh.basic.base.service.SuperService;
import top.tangyh.lamp.care.entity.BPipeUseRecord;
import top.tangyh.lamp.care.vo.query.QcQueryPageVO;
import top.tangyh.lamp.care.vo.query.PipeUseRecordQueryVO;
import top.tangyh.lamp.care.vo.result.*;
import top.tangyh.lamp.care.vo.update.ChangeYxPipeUseRecordParam;

import java.util.List;
import java.util.Map;


/**
 * <p>
 * 业务接口
 * 导管使用记录具体信息表
 * </p>
 *
 * @author zqb
 * @date 2024-07-19 15:02:24
 * @create [2024-07-19 15:02:24] [zqb] [代码生成器生成]
 */
public interface BPipeUseRecordService extends SuperService<Long, BPipeUseRecord> {

    /**
     * 查询所有的信息
     */
    Map<String, Object> queryAllPipeUseRecord(PipeUseRecordQueryVO pipeUseRecordQueryVO);

//    PageOutputDTO<BPipeUseRecordResultVO> pipeUseRecordPage(QueryPipeObsvRecorddParam query);
    IPage<BPipeUseRecordResultVO> pageOfPipeUseRecord(QcQueryPageVO pipeUseRecordQcQueryVO);




    /**
     * 增加或者修改导管信息
     */
    Long addOrUpdateYxPipeUseRecord(BPipeUseRecord pipeUseRecordPO);

    /**
     *换管更新
     */
    Boolean updateYxPipeUseRecord(ChangeYxPipeUseRecordParam changePipeUseRecordParam);

    /**
     * 删除导管信息
     */
    boolean deleteYxPipeUseRecordById(Long id);

    List<TepPipeUseRecordVO> selectTemperatureChannelByHospitalNumberAndTime(String hospitalNumber, String rkTimeStr, String cYTimeStr, String typeName);


    /**
     * 查询有效期的管道在本班次时间内到期后未拔管的管道
     */
    List<BPipeUseRecord> selectValidityOfChannel(String hoverTime,String patientIdent,String hospitalNumber);


    /**
     *  此病人使用中的管道自插管时间开始截止到交班时间有效期剩余天数（仅展示填写有效期的管道）
     */
    List<BPipeUseRecord> selectKeyData(String hoverTime,String patientIdent,String hospitalNumber);


    /**
     * 拔管是非计划拔管的拔管记录数量
     * @return
     */
    int countOfUnplannedExtubation(String startTime,String endTime);


    List<StatisticsByMonth> pipeUserRecordStatisticsOfSixMonth(String startTime);

    /**
     *
     * 同期管道插管总数量
     * @param startTime
     * @param endTime
     * @return
     */
    int countOfUnplannedExtubationAll(String startTime,String endTime);
}


